﻿''' <summary>
''' Абстрактный класс, предоставляющий базовую модель данных с поддержкой связанного изображения.
''' </summary>
''' <remarks></remarks>
<Table("ImageableEntities")>
Public MustInherit Class ImageableEntity
    Inherits Entity
    Implements IImageableEntity

    ''' <summary>
    ''' Возвращает уникальный идентификатор миниатюры.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <HiddenInput(DisplayValue:=False)>
    Public Property ThumbnailId As Guid Implements IImageableEntity.ThumbnailId

    ''' <summary>
    ''' Устанавливает или возвращает локальный путь к файлу изображения. Свойство не сопоставлено с базой данных, поэтому используется только для представления. Рекомендуется для этого свойства реализовать шаблон представления для HTML-элемента <c>Upload</c>, поместив его в папку <c>EditorTemplates</c>.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <NotMapped>
    <DataType(DataType.Upload)>
    <Display(Name:="Миниатюра", Order:=80)>
    Public Property ImageFile As String
End Class

''' <summary>
''' Предоставляет свойства для реализации в моделях данных поддержки связанных изображений (миниатюр).
''' </summary>
''' <remarks></remarks>
Public Interface IImageableEntity
    Inherits IEntity

    ''' <summary>
    ''' Устанавливает или возвращает уникальный идентификатор связанного изображения.
    ''' </summary>
    Property ThumbnailId As Guid
End Interface
